package advanced;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
 * 脚本引擎执行javascript代码
 * <p>
 * <p>
 * 使得java应用程序可以通过 一套固定的接口与各种脚本引擎进行交互,从而达到java在平台上调用各种脚本语言的目的
 * java脚本api 是联通java平台和脚本语言目的
 * !!!!
 * 可以把一些复杂一遍的业务逻辑交给脚本语言进行处理,这又提高了开发效率
 */
public class L_ScriptManager {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager engineManager = new ScriptEngineManager();
        ScriptEngine engine = engineManager.getEngineByName("javascript");//指定脚本语言的名字
        //定义的变量会存储到引擎的上下文里边, java和脚本都可以取
        engine.put("msg", "you are a good man");
        String str = "var user={name:'yeung',age:18};";
        str += "print(user.name);";
        engine.eval(str);//执行脚本
        engine.eval("msg='sxt is a good school';");
        System.out.println(engine.get("msg"));

    }
}
